$(function () {
    layui.config({
        base: 'static/layuiadmin/' //静态资源所在路径
    }).extend({
        index: 'lib/index' //主入口模块
    }).use(['index','table', 'form', 'laydate', 'modeutils', 'layer', 'selectM'], function () {
            var table = layui.table
            , form = layui.form
            , layer = layui.layer
            , laydate = layui.laydate
            , modeutils = layui.modeutils
            , selectM = layui.selectM
            , $ = layui.$;

            //设置选择样式
            var tmpobj = null;
            table.on('row', function (obj) {
                if (tmpobj != null) {
                    tmpobj.tr[0].style = 'background-color: #ffffff;';
                if (tmpobj.tr[1]) {
                    tmpobj.tr[1].style = 'background-color: #ffffff;';
                }
            }
            tmpobj = obj;
            obj.tr[0].style = 'background-color: #00801c61';
            if (obj.tr[1]) {
                    obj.tr[1].style = 'background-color: #00801c61';
                }
            });

            //回车查询事件
            $('#filtername').bind('keyup', function(event) {
                if (event.keyCode == "13") {
                    $('#LAY-reload-search-id').click();
                }
            });

            //监听搜索
            form.on('submit(LAY-reload-search)', function (data) {
                var field = data.field;
                //执行重载
                table.reload('entityTableInfo', {
                    where: field
                });
            });

            //重置
            $("#LAY-reset-search").on('click', function (obj) {
                form.val('form-search', {"filtername": ""});
                table.reload('entityTableInfo', {
                    where: {"filtername": ""}
                });
            });

            //监听行双击事件，查看详情信息
            table.on('rowDouble(entity-table-info)', function(obj){
                //post提交参数
                var postConfig = {
                    'url':'class_list/data.do'
                    ,'data':{clsID:obj.data.clsID}
                };
                modeutils.open('entity-mode-detail',postConfig,{'filter':'show-entity-Info'});
            });

            //加载table列表
            //function loadTable(dicts){
                //实体列表信息
                table.render({
                    elem: '#entity-table-info'
                    ,id:'entityTableInfo'
                    ,autoSort: false //禁用前端自动排序。
                    // ,skin: 'nob' //行边框风格 line/row/nob
                    ,url : 'class_list/list.do'
                    ,method: 'post'
                    ,cellMinWidth: 80 //全局定义常规单元格的最小宽度，layui 2.2.1 新增
                    ,height: 'full-100'  //高度自适应
                    ,width: 'full-100'
                    ,toolbar: '#entity-table-totalRow-toolbar'
                    ,title: '导出数据' //导出数据文件名称，需自定义
                    ,cols: [[
                    {type:'checkbox'}  //开启复选框
                    ,{field:'classStatus', title:'班级状态', width:100, templet: '#entity-table-status-ID', unresize: true,sort:true}
                        ,{field:'clsID', width:150, title: '班级ID', sort: true,hide:true}
                        ,{field:'classSchoolId', width:150, title: '所属分校ID', sort: true}
                        ,{field:'classId', width:150, title: '班级号', sort: true}
                        ,{field:'classGroup', width:150, title: '教学部', sort: true,templet:'#entity-table-classGroup'}
                        ,{field:'classType', width:150, title: '辅导班级类型', sort: true,templet:'#entity-table-classType'}
                        ,{field:'classYear', width:150, title: '所属年级', sort: true}
                        ,{field:'classGrade', width:150, title: '所属教研组（数学，语文，英语，全日制，等等）', sort: true}//该字段的表中显示是从数据库读取还是前端判断？？
                        ,{field:'classMaster', width:150, title: '辅导员/对应工号', sort: true}
                        ,{field:'classCreateDt', width:180,title: '班级创建时间',
                            templet: function(d){
                                return d.classCreateDt ? formatTime(d.classCreateDt,'yyyy-MM-dd hh:mm:ss') : "";
                            }
                        }
                        /*,{field:'classStatus', width:150, title: '班级状态', sort: true}*/
                    ,{title:'操作',width:160, align:'center', fixed: 'right', toolbar: '#entity-table-detail-ID',unresize: true}
                    ]]
                    ,initSort: {
                        field: 'clsID' //设置初始化排序字段
                        ,type: 'desc'  //设置初始化排序方式 desc/asc
                    }
                    ,page: { //支持传入 laypage 组件的所有参数（某些参数除外，如：jump/elem） - 详见文档
                        layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
                        //,curr: 5 //设定初始在第 5 页
                        ,groups: 5 //只显示 1 个连续页码
                        ,first: false //不显示首页
                        ,last: false //不显示尾页
                    }
                    ,request:{
                        pageName: 'page' //页码的参数名称，默认：page
                        ,limitName: 'limit' //每页数据量的参数名，默认：limit
                    }
                    , done: function (res, curr, count) {
                        //res 接口返回的数据;curr当前页码。返回的数据
                        if (res.success){
                            layer.msg("加载成功", {icon: 1,time: 1000});
                        }else {
                            layer.msg("加载失败", {icon: 2,time: 1000});
                        }
                    }
                });
           // }

            //监听排序事件,使用服务端排序
            table.on('sort(entity-table-info)', function(obj) {
                table.reload('entityTableInfo', {
                    initSort: obj //记录初始排序，
                        , where: { //请求参数（
                            sort: obj.field //排序字段
                            , order: obj.type //排序方式
                    }
                });
            });

            //新增窗口设置属性
            var config = {
                type: 'add',
                title: '新增',
                skin: 'layui-layer-molv', //自定义窗口风格
                rSetID: '#add-entity-info-btn-reset', //重置按钮
                width: '60%',
                height: '60%'
            };

            //监听表头工具
            table.on('toolbar(entity-table-info)', function (obj) {
                var checkStatus = table.checkStatus(obj.config.id);
                var data = checkStatus.data;
                switch (obj.event) {
                    case 'add':
                        modeutils.openMode(config, 'entity-mode'); //打开新增窗口
                        break;
                    case 'batchDelete':
                        var ids = [];
                        for(n in data){
                            ids.push(data[n].clsID);
                        }
                        modeutils.delete("batchDelete",{ids : ids.join(',')},"api/xqzClassToScool/batchDelete") ; //批量删除
                        break;
                }
            });

            //监听表格行内操作
            table.on('tool(entity-table-info)', function (obj) {
                var data = obj.data;
                var url = 'class_list/data.do';
                switch (obj.event) {
                    case 'edit':
                        //post提交参数
                        var postConfig = {
                            'url':url
                            ,'data':{clsID:data.clsID}
                        };
                        //窗口参数
                        var modelConfig = {
                            title:'编辑'
                            ,type:'edit'
                            ,filter:'entity-Info'
                        };
                        modeutils.open('entity-mode',postConfig,modelConfig);
                        break;
                    case 'delete':
                        modeutils.delete("delete",{clsID:data.clsID},"api/xqzClassToScool/delete");
                        break;
                    case 'detail':
                        //post提交参数
                        var postConfig = {
                            'url':url
                            ,'data':{clsID:data.clsID}
                        };
                        modeutils.open('entity-mode-detail',postConfig,{'filter':'show-entity-Info'});
                        break;
                }
            });

            //监听表单提交
            form.on('submit(add-entity-info-btn)', function (data) {
                var url = "";
                if (data.field.clsID > 0) {
                    url = 'class_list/update.do';
                } else {
                    url = 'class_list/add.do';
                }
                modeutils.post({
                    url: url,
                    data: data.field,
                    success: function (res) {
                        if (res.success) {
                            layer.closeAll();
                            table.reload('entityTableInfo', {});
                        } else {
                            layer.msg(res.msg, {icon: 2});
                        }
                    },
                    error: function (err) {
                        layer.msg("请求错误，请重试", {icon: 2});
                    }
                });
                return false;
            });

            //班级创建时间
            laydate.render({
                elem: '#add-classCreateDt-ID'
                ,type: 'datetime' //类型
                ,theme: '#009f95'  //主题 grid/molv
            });
            //详情-班级创建时间
            laydate.render({
                elem: '#show-classCreateDt-ID'
                ,type: 'datetime' //类型
                ,theme: '#009f95'  //主题 grid/molv
            });




            //字典列表，列表中若需要多字典，中间用逗号","分隔
            var typenames = "";//"sys_SysDict_defaultvalue_val,sys_base_status_val";
            //加载字典数据后加载table
            //loadDicts(typenames,loadTable);
            //加载字典数据后加载下拉框select
            //oadDicts(typenames,loadSelects);
        })
    });
//下拉列表
function loadSelects() {
    var dict=getDictDataAll();
    /*教学部下拉列表*/
    var d=null;
    d=dict.groupType;
    for (var i=0;i<d.length;i++){
        var op='<option value=" '+ d[i].value +' "> '+ d[i].displayvalue +' </option>';
        $("#classGroup").append(op);
    }
    d=dict.classType;
    for (var i=0;i<d.length;i++){
        var op='<option value="  '+ d[i].value +'  "> '+ d[i].displayvalue +'</option>';
        $("#classType").append(op);
    }
}

